
'''
1.打印小猫爱吃鱼，小猫要喝水
    定义class一个猫类cat
    定义猫cat
    属性：none
    方法：吃 食物 可以外界给予 字符串
         喝 音频 可以外界给予 字符串
'''
class Cat:
    def eat(self,food):
        print(f'猫爱吃{food}')
    def drink(self,water):
        print(f'猫要喝{water}')

#debug
if __name__ == '__main__':
    c1=Cat()
    c1.eat('耗子')
    c1.drink('啤酒')

'''
小明爱跑步，爱吃东西
1.小明体重75kg
2.每次跑步会减肥0.5kg
3.每次吃东西体重会增加1kg
4.小妹的体重是45kg

'''
'''
需要定义的类：人类
类的属性：姓名，体重
        姓名  字符串   需要外界给予
        体重  数值类型  需要外界获取
类的方法：跑步，吃东西
        跑步：体重减少0.5kg
        吃东西：体重增加一公斤
'''

class People:
    def __init__(self,n,w):
        self.name=n
        self.weight = w

    def run(self):
        self.weight-=0.5

    def eat(self):
        self.weight +=1

    def __str__(self):
        return f'我的名字是{self.name},我的体重是{self.weight}'
if __name__ == '__main__':
    p1=People('小明',75)
    print(p1.weight)
    p1.run()
    print(p1.weight)
    p1.eat()
    print(p1.weight)

    p2=People("小美",45)
    print(p2.name)
    print(p2.weight)

'''
摆放家具
需求：
    1.房子户型、总面积和家具名称list
    新房无任何家具
    2.家具有名字和占地面积，其中：
    床：4平米
    衣柜：2平米
    餐桌：1.5平米
    3.将以上家具添加到房子里
    4.打印房子时，需求输入：户型、总面积、剩余面积、家具名称列表
    
'''
'''
需要定义的类：房子、家具
家具类：
    属性：name、面积
        name 外界获取 字符串
        面积 完结获取 数值类型
    方法：无
房子类：
    属性：
        户型：外界获取 字符串
        总面积：外界获取 数值 
        家具列表： 外界获取 列表
        剩余面积：
        方法：
'''
#
class jiaju:
    def __init__(self,n,a):
        self.name=n
        self.area=a
    def __str__(self):
        return f'这个家具名字是{self.name},面积是{self.area}'
class house:
    def __init__(self,a,area):
        self.apartment = a
        self.total_area= area
        self.item_list=[]
        self.free_area=self.total_area

    def add_item(self,item):
        if item.area<self.free_area:
            self.item_list.append(item.name)
            self.free_area -= item.area

        else:
            print('装不下了')

    def __str__(self):
        return f'房子的户型是{self.apartment},总面积是{self.total_area},剩余面积是{self.free_area},家具有{self.item_list}'


if __name__ == '__main__':
    bed=jiaju('床',200)
    print(bed)
    print(bed.name)
    print(bed.area)
    h1=house('三居室',180)
    print(h1)
    h1.add_item(bed)
    print(h1)


'''
士兵开枪
    需求：
    1.士兵瑞恩有一把AK47
    2.士兵可以开火（扣动扳机）
    3.枪能够发射子弹（发射）
    4.枪能够装填子弹--增加子弹的数量

'''

'''
需要定义的类：士兵、枪
枪类：
    属性：
        型号       需要外界给予   字符串
        子弹数量    初始为0       整数
        
    方法：
        发射：
            判断子弹是否大于0
                是：
                    射击：fire
'''